home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1997-01-29 | 27.8 KB | 934 lines |
- 10 'TRANSMAT - Transmatch Design - 28 SEP 95 rev. 28 SEP 96
- 20 'adapted from TUNER.BAS version 1.5 by Brian Egan, ZL1LE
- 30 NONOTE=0
- 40 IF EX$=""THEN EX$="EXIT"
- 50 IF PROG$=""THEN GO$=EX$ ELSE GO$=PROG$
- 60 COMMON EX$,PROG$
- 70 CLS:KEY OFF
- 80 COLOR 7,0,1
- 90 V=0
- 100 PI=3.14159
- 110 U1$="#####.###"
- 120 U2$="#####.##"
- 130 UL$=STRING$(80,205)
- 140 E$=STRING$(79,32)
- 150 '
- 160 '.....start
- 170 CLS
- 180 COLOR 15,2
- 190 PRINT " TRANSMATCH DESIGN";TAB(61);"by Brian Egan ZL1LE ";
- 200 PRINT STRING$(80,32);
- 210 LOCATE CSRLIN-1,20:PRINT "edited for HAMCALC by George Murphy VE3ERP"
- 220 COLOR 1,0:PRINT STRING$(80,223);:COLOR 7,0
- 230 '
- 240 '.....main menu
- 250 T=(9)
- 260 PRINT TAB(T);
- 270 PRINT "This program may be used to:"
- 280 PRINT TAB(T);
- 290 PRINT STRING$(28,196)
- 300 PRINT
- 310 PRINT " 1.";TAB(T);
- 320 PRINT "Design Transmatch circuits of several different types...."
- 330 PRINT TAB(T);
- 340 PRINT
- 350 PRINT " 2.";TAB(T);
- 360 PRINT "Compute SWR when transmatch components are varied in value...."
- 370 PRINT TAB(T);
- 380 PRINT "(e.g. to show effect of variable capacitor/inductor adjustments)."
- 390 PRINT
- 400 PRINT " 3.";TAB(T);
- 410 PRINT "Measure an unknown load by using a matched transmatch as an"
- 420 PRINT TAB(T);
- 430 PRINT "impedance bridge...."
- 440 PRINT
- 450 PRINT UL$;
- 460 COLOR 0,7:LOCATE 17,22
- 470 PRINT " Press 1 to continue or 0 to EXIT....."
- 480 COLOR 7,0
- 490 Z$=INKEY$:IF Z$=""THEN 490
- 500 IF Z$="0"THEN CLS:CHAIN GO$
- 510 IF Z$="1"THEN 530
- 520 GOTO 490
- 530 LOCATE CSRLIN-1:PRINT E$
- 540 IF NONOTE=1 THEN 630
- 550 LOCATE 17,9:PRINT "Do you wish to read the program notes (y/n)?"
- 560 Y$=INKEY$:IF Y$=""THEN 560
- 570 IF Y$="N"OR Y$="n"THEN NONOTE=1:GOTO 610
- 580 IF Y$="Y"OR Y$="y"THEN 6770
- 590 GOTO 560
- 600 '
- 610 VIEW PRINT 4 TO 24:CLS:VIEW PRINT:LOCATE 4
- 620 NONOTE=0
- 630 PRINT " PRESS a number in ( ) below to select program option:"
- 640 PRINT UL$;
- 650 T=3
- 660 PRINT TAB(T);"(1) PI-COUPLER TRANSMATCH DESIGN"
- 670 PRINT TAB(T);"(2) PI-COUPLER IMPEDANCE BRIDGE"
- 680 PRINT TAB(T);"(3) SPC (includes HighPass Tee) TRANSMATCH DESIGN"
- 690 PRINT TAB(T);"(4) SPC (includes HighPass Tee) IMPEDANCE BRIDGE"
- 700 PRINT TAB(T);"(5) LOWPASS TEE TRANSMATCH DESIGN"
- 710 PRINT TAB(T);"(6) LOWPASS TEE IMPEDANCE BRIDGE"
- 720 PRINT TAB(T);"(7) `ULTIMATE' TRANSMATCH DESIGN"
- 730 PRINT TAB(T);"(8) `ULTIMATE' IMPEDANCE BRIDGE"
- 740 PRINT TAB(T);"(9) 2-ELEMENT LADDER MATCHING NETWORK"
- 750 PRINT
- 760 COLOR 14
- 770 PRINT TAB(T);"(0) QUIT"
- 780 COLOR 7
- 790 Z$=INKEY$:IF Z$=""THEN 790
- 800 IF Z$="0"THEN S=10 ELSE S=VAL(Z$)
- 810 CLS:COLOR 7,0,1
- 820 ON S GOSUB 1020,1660,2060,3530,3970,4970,5330,6400,840,9180
- 830 END
- 840 CLS:CHAIN"ladder2"
- 850 '
- 860 '.....format input line
- 870 LOCATE CSRLIN-1:PRINT SPC(7);
- 880 LOCATE CSRLIN,47:PRINT STRING$(7,".");USING U$;ZZ;
- 890 RETURN
- 900 '
- 910 '.....enter 4 of 5 transmatch parameters for PI-COUPLER and SPC
- 920 INPUT " ENTER: Transmatch Input Impedance R1..........(ohms)";R1
- 930 ZZ=R1:U$=U2$:GOSUB 860:PRINT " -"
- 940 INPUT " ENTER: Load Resistance RL.....................(ohms)";RL
- 950 ZZ=RL:U$=U2$:GOSUB 860:PRINT " -"
- 960 INPUT " ENTER: Load Reactance.........................(ohms)";XS
- 970 ZZ=XS:U$=U2$:GOSUB 860:PRINT " -"
- 980 INPUT " ENTER: Frequency...............................(MHz)";F
- 990 ZZ=F :U$=U1$:GOSUB 860:PRINT " MHz"
- 1000 RETURN
- 1010 '
- 1020 '.....PI COUPLER transmatch
- 1030 T$="PI-COUPLER TRANSMATCH DESIGN"
- 1040 T=(80-LEN(T$))/2
- 1050 PRINT TAB(T);T$
- 1060 PRINT UL$;
- 1070 GOSUB 1540 'diagram
- 1080 PRINT UL$;
- 1090 GOSUB 910 'data input
- 1100 '
- 1110 '.....calculation of transmatch components
- 1120 W=2*PI*F*10^6
- 1130 Z=RL^2+XS^2:R2=Z/RL:CP=-XS/Z/W:LMAX=SQR(R1*R2)/W
- 1140 IF CP<=1/(W^2*LMAX)THEN 1180
- 1150 A1=1+W^2*CP^2*R2^2:A2=-2*W*CP*R2^2:A3=R1*R2-R2*R2
- 1160 LM1=-A2/2/A1+SQR(A2^2/4/A1/A1+A3/A1):LM1=LM1/W
- 1170 IF LM1<LMAX THEN LMAX=LM1
- 1180 PRINT " Inductor must be less than";:PRINT USING "###.###";LMAX*10^6;
- 1190 PRINT " uH. ";
- 1200 INPUT " ENTER: Value of INDUCTOR in uH: ";L
- 1210 IF L>LMAX*10^6 THEN LOCATE CSRLIN-1:PRINT E$:LOCATE CSRLIN-1:GOTO 1180
- 1220 LOCATE CSRLIN-1:PRINT E$:LOCATE CSRLIN-1
- 1230 PRINT " Inductor L...................................";USING U1$;L;
- 1240 PRINT " >H"
- 1250 PRINT " SWR.......................................... 1:1"
- 1260 XL=W*L*10^-6
- 1270 K=SQR(R1*R2-XL^2)/R1:C1=(1-K)/W/XL:C2=(1-R1/R2*K)/W/XL
- 1280 C1A=(1+K)/W/XL:C2A=(1+R1/R2*K)/W/XL
- 1290 PRINT " SOLUTION 1:"
- 1300 IF C2-CP<0 THEN 1390
- 1310 IF K>1 THEN PRINT TAB(9);"(no solution)":GOTO 1380
- 1320 ZZ=C1*10^12
- 1330 PRINT TAB(9);"Capacitor C1.................................";USING U2$;ZZ;
- 1340 PRINT " pF"
- 1350 ZZ=(C2-CP)*10^12
- 1360 PRINT TAB(9);"Capacitor C2.................................";USING U2$;ZZ;
- 1370 PRINT " pF"
- 1380 LOCATE 19:PRINT " SOLUTION 2:"
- 1390 ZZ=C1A*10^12
- 1400 PRINT TAB(9);"Capacitor C1.................................";USING U2$;ZZ;
- 1410 PRINT " pF"
- 1420 ZZ=(C2A-CP)*10^12
- 1430 PRINT TAB(9);"Capacitor C2.................................";USING U2$;ZZ;
- 1440 PRINT " pF"
- 1450 GOSUB 8770 'calculate *
- 1460 LOCATE 23,9:PRINT "Do you wish to vary the inductor size (y/n)?"
- 1470 Y$=INKEY$:IF Y$="" THEN 1470
- 1480 IF Y$="Y"OR Y$="y"THEN 1520
- 1490 GOSUB 7600 'calculate SWR
- 1500 LOCATE CSRLIN-1:PRINT E$
- 1510 GOTO 9160
- 1520 VIEW PRINT 14 TO 24:CLS:VIEW PRINT:LOCATE 14:GOTO 1180
- 1530 '
- 1540 '.....PI COUPLER circuit diagram
- 1550 COLOR 0,7
- 1560 T=26
- 1570 LOCATE CSRLIN,T:PRINT " L "
- 1580 LOCATE CSRLIN,T:PRINT " R1 DEFDBLSOUNDSOUNDSOUNDBSAVESOUNDSOUNDSOUNDORORORORORSOUNDSOUNDSOUNDBSAVESOUNDSOUNDSOUNDDEFDBL RL "
- 1590 LOCATE CSRLIN,T:PRINT " input CALL CALL load "
- 1600 LOCATE CSRLIN,T:PRINT " THENINSTRTHEN C1 THENINSTRTHEN C2 "
- 1610 LOCATE CSRLIN,T:PRINT " CALL CALL "
- 1620 LOCATE CSRLIN,T:PRINT " grnd /// /// "
- 1630 COLOR 7,0
- 1640 RETURN
- 1650 '
- 1660 '.....PI COUPLER impedance bridge
- 1670 CLS
- 1680 T$="PI-COUPLER IMPEDANCE BRIDGE"
- 1690 T=(80-LEN(T$))/2
- 1700 PRINT TAB(T);T$
- 1710 PRINT UL$;
- 1720 GOSUB 1540
- 1730 PRINT UL$;
- 1740 '
- 1750 INPUT " ENTER: Transmatch Input Impedance R1..........(ohms)";R1
- 1760 ZZ=R1:U$=U2$:GOSUB 860:PRINT " -"
- 1770 INPUT " ENTER: Value of inductor L.................... (>H)";L
- 1780 ZZ=L:U$=U2$:GOSUB 860:PRINT " >H"
- 1790 INPUT " ENTER: Value of capacitor C1.................. (pF)";C1
- 1800 ZZ=C1:U$=U2$:GOSUB 860:PRINT " pF"
- 1810 INPUT " ENTER: Value of capacitor C2.................. (pF)";C2
- 1820 ZZ=C2:U$=U2$:GOSUB 860:PRINT " pF"
- 1830 INPUT " ENTER: Frequency...............................(MHz)";F
- 1840 ZZ=F :U$=U1$:GOSUB 860:PRINT " MHz"
- 1850 W=2*PI*F*10^6
- 1860 C1=C1*10^-12:C2=C2*10^-12:L=L*10^-6
- 1870 K=(1-W^2*L*C1):R2=R1*(K^2+W^2*L^2/R1/R1)
- 1880 C0=C2+(C1*R1^2*K-L)/R1/R2
- 1890 B=1+W^2*C0^2*R2^2
- 1900 RL=R2/B:XL=W*C0*R2^2/B
- 1910 IF XL<0 THEN SUM$="-" ELSE SUM$="+"
- 1920 XL=ABS(XL)
- 1930 PRINT TAB(9);"Load impedance...............................";
- 1940 PRINT USING "#####.#";INT(RL*10)/10;:PRINT " ";SUM$;" j";INT(XL*10)/10;"-"
- 1950 U=RL-R1:V=RL+R1:P=U^2+XL^2:Q=V^2+XL^2
- 1960 GAMMA=SQR(P/Q):SWR=(1+GAMMA)/(1-GAMMA)
- 1970 PRINT TAB(9);"Load SWR.....................................";USING U2$;SWR;
- 1980 PRINT ":1"
- 1990 LOCATE 23,9:PRINT "Do you wish to make another calculation (y/n)"
- 2000 Y$=INKEY$:IF Y$="" THEN 2000
- 2010 IF Y$="Y"OR Y$="y" THEN 2040
- 2020 LOCATE 23:PRINT E$
- 2030 GOTO 9160 'end
- 2040 VIEW PRINT 10 TO 24:CLS:VIEW PRINT:LOCATE 10:GOTO 1660
- 2050 '
- 2060 '.....SPC/HIGHPASS TEE transmatch design
- 2070 CLS
- 2080 T$="SPC TRANSMATCH DESIGN"
- 2090 T=(80-LEN(T$))/2
- 2100 PRINT TAB(T);T$
- 2110 PRINT UL$;
- 2120 GOSUB 3410 'diagram
- 2130 PRINT UL$;
- 2140 GOSUB 3020 'option menu
- 2150 GOSUB 910 'input R1,R,X,& F
- 2160 '
- 2170 '.....compute transmatch components
- 2180 W=2*PI*F*10^6
- 2190 IF RL>R1 THEN GOSUB 2640 ELSE GOSUB 2780
- 2200 '
- 2210 INPUT " ENTER: Value of C1 in pF .....";C1
- 2220 IF C1>=C1MAX THEN LOCATE CSRLIN-1:PRINT E$:LOCATE CSRLIN-1:GOTO 2210
- 2230 LN=CSRLIN-2:VIEW PRINT LN TO 24:CLS:VIEW PRINT:LOCATE LN
- 2240 PRINT TAB(9);"Capacitor C1.................................";USING U2$;C1;
- 2250 PRINT " pF"
- 2260 PRINT TAB(9);"SWR.......................................... 1:1"
- 2270 '
- 2280 '.....inductor calculation
- 2290 A=1/(W^2*RL*(R1-RL)+RL/(C1^2*10^-24*R1))
- 2300 CL=SQR(A):GOSUB 2930
- 2310 '
- 2320 PRINT " SOLUTION 1:"
- 2330 ZZ=C*10^12
- 2340 PRINT TAB(9);"Capacitor C..................................";USING U2$;ZZ;
- 2350 PRINT " pF"
- 2360 ZZ=L*10^6
- 2370 PRINT TAB(9);"Inductor L...................................";USING U2$;ZZ;
- 2380 PRINT " >H"
- 2390 GOSUB 8960 '* calculation
- 2400 '
- 2410 LOCATE 19:PRINT " SOLUTION 2:"
- 2420 CL=-SQR(A):GOSUB 2930
- 2430 IF XS<=0 OR V=0 THEN PRINT TAB(9);"No second solution":PRINT:GOTO 2560
- 2440 IF C<0 THEN LOCATE 20,9:PRINT "No second solution"
- 2450 IF C<0 THEN LOCATE 21,9:PRINT "for this value of C1":GOTO 2560
- 2460 IF C<=1500*10^-12 AND L>=<10^-9 THEN 2490
- 2470 LOCATE 20,9:PRINT "Impractical values"
- 2480 LOCATE 21,9:PRINT "for this value of C1":GOTO 2560
- 2490 ZZ=C*10^12
- 2500 PRINT TAB(9);"Capacitor C..................................";USING U2$;ZZ;
- 2510 PRINT " pF"
- 2520 ZZ=L*10^6
- 2530 PRINT TAB(9);"Inductor L...................................";USING U2$;ZZ;
- 2540 PRINT " >H"
- 2550 GOSUB 9010 'calculate *
- 2560 LOCATE 23,9:PRINT "Do you wish to vary C1 (y/n)?:"
- 2570 Y$=INKEY$:IF Y$=""THEN 2570
- 2580 IF Y$="Y"OR Y$="y"THEN 2620
- 2590 GOSUB 7900 'calculate SWR
- 2600 LOCATE CSRLIN-1:PRINT E$
- 2610 GOTO 9160
- 2620 VIEW PRINT 14 TO 24:CLS:VIEW PRINT:LOCATE 14:GOTO 2190
- 2630 '
- 2640 '.....subroutine for RL>R1
- 2650 C1A=1/W/SQR(R1*(RL-R1))*10^12
- 2660 C1B=1/W*SQR(RL/R1)/SQR(XS^2+RL*(RL-R1))*10^12
- 2670 LOCATE CSRLIN,9
- 2680 IF XS<=0 THEN PRINT "C1 max.=";USING "####.#";C1B;:PRINT " pF"
- 2690 IF XS> 0 THEN PRINT "C1 max.=";USING "####.#";C1A;:PRINT " pF"
- 2700 IF XS> 0 THEN LOCATE 23 ELSE GOTO 2740
- 2710 ZZ=INT(10*C1B)/10+0.1
- 2720 PRINT TAB(9);"NOTE: There are TWO solutions in the range";ZZ"< C1 <";
- 2730 PRINT USING "####.#";C1A;:PRINT " pF.":V=1
- 2740 IF XS<=0 THEN C1MAX=C1B ELSE C1MAX=C1A
- 2750 LOCATE 15
- 2760 RETURN
- 2770 '
- 2780 '.....subroutine for RL<=R1
- 2790 IF(RL^2+XS^2)<=R1^2 THEN C1MAX=750:PRINT " C1 max.= 749.9 pF":RETURN
- 2800 C1B=1/W*SQR(RL/R1)/SQR(XS^2+RL*(RL-R1))*10^12
- 2810 IF XS<=0 THEN C1MAX=C1B ELSE C1MAX=750
- 2820 IF C1MAX>750 THEN C1MAX=750
- 2830 IF XS<=0 THEN PRINT " C1 max.=";INT(C1MAX*10)/10-0.1;" pF"
- 2840 IF XS>0 THEN PRINT " C1 max.= 749.9 pF"
- 2850 IF XS>0 THEN LOCATE 23 ELSE RETURN
- 2860 IF C1B>=750 THEN RETURN
- 2870 ZZ=INT(10*C1B+1)/10
- 2880 PRINT TAB(9);"NOTE: There are TWO solutions in the range";ZZ;
- 2890 PRINT "< C1 < 749.9 pF.":V=1
- 2900 LOCATE 15
- 2910 RETURN
- 2920 '
- 2930 '.....subroutine L and C continued
- 2940 CP=CL/(1+W^2*CL^2*RL^2):C=1/(W*XS+1/CL)
- 2950 IF VER$="1"THEN C2=C+CP:GOTO 2990
- 2960 IF VER$="2"THEN C2=C1*10^-12+CP:GOTO 2990
- 2970 IF VER$="3"THEN C2=CP
- 2980 REM:IF VER$="3"AND C2<0 THEN RETURN
- 2990 R2=R1+1/(W^2*C1^2*10^-24*R1):L=1/(W^2*C2+1/(C1*10^-12*R1*R2))
- 3000 RETURN
- 3010 '
- 3020 '.....SPC menu
- 3030 PRINT " PRESS number in ( ) below to select version:"
- 3040 PRINT UL$;
- 3050 PRINT " (1) SPC TRANSMATCH MODE I (Cn = C)"
- 3060 PRINT " (2) SPC TRANSMATCH MODE II (Cn = C1)"
- 3070 PRINT " (3) HIGH PASS TEE (Cn = 0)"
- 3080 VER$=INKEY$:IF VER$="" THEN 3080
- 3090 IF VAL(VER$)>3 OR VAL(VER$)<1 THEN 3080
- 3100 COLOR 0,7
- 3110 IF VER$<>"1"THEN 3140
- 3120 C$="C":GOSUB 3340
- 3130 LOCATE 6,47:PRINT "=C":LOCATE 1,53:PRINT "(Mode I: Cn=C)":GOTO 3220
- 3140 IF VER$<>"2"THEN 3170
- 3150 C$="C1":GOSUB 3340
- 3160 LOCATE 6,47:PRINT "=C1":LOCATE 1,53:PRINT "(Mode II: Cn=C1)":GOTO 3220
- 3170 IF VER$<>"3"THEN 3200
- 3180 GOSUB 3250:GOTO 3190
- 3190 LOCATE 6,47:PRINT "=0":LOCATE 1,53:PRINT "(High Pass Tee: Cn=0)":GOTO 3220
- 3200 GOTO 3080
- 3210 '
- 3220 COLOR 7,0:VIEW PRINT 10 TO 24:CLS:VIEW PRINT:LOCATE 10
- 3230 RETURN
- 3240 '
- 3250 '.....erase Cn from diagram
- 3260 COLOR 0,7
- 3270 LOCATE 4,T+16:PRINT "SOUND"
- 3280 LOCATE 5,T+16:PRINT " "
- 3290 LOCATE 6,T+15:PRINT " (Cn=0)"
- 3300 LOCATE 7,T+16:PRINT " "
- 3310 LOCATE 8,T+15:PRINT " "
- 3320 RETURN
- 3330 '
- 3340 '.....add split-stator note to diagram
- 3350 COLOR 7,0
- 3360 LOCATE 5,56:PRINT C$;" & Cn may be a split-"
- 3370 LOCATE 6,56:PRINT "stator capacitor"
- 3380 COLOR 0,7
- 3390 RETURN
- 3400 '
- 3410 '.....SPC diagram
- 3420 COLOR 0,7
- 3430 T=26
- 3440 LOCATE CSRLIN,T:PRINT " C1 C "
- 3450 LOCATE CSRLIN,T:PRINT " R1 DEFDBLSOUNDSOUNDSOUNDUSINGSOUNDSOUNDSOUNDBSAVESOUNDSOUNDSOUNDBSAVESOUNDSOUNDSOUNDUSINGSOUNDSOUNDSOUNDDEFDBL RL "
- 3460 LOCATE CSRLIN,T:PRINT " input CALL CALL load "
- 3470 LOCATE CSRLIN,T:PRINT " VARPTROROROROROR' THENINSTRTHEN Cn "
- 3480 LOCATE CSRLIN,T:PRINT " CALL L CALL "
- 3490 LOCATE CSRLIN,T:PRINT " /// grnd /// "
- 3500 COLOR 7,0
- 3510 RETURN
- 3520 '
- 3530 '.....SPC/HIGHPASS TEE impedance bridge
- 3540 CLS
- 3550 T$="SPC IMPEDANCE BRIDGE"
- 3560 T=(80-LEN(T$))/2
- 3570 PRINT TAB(T);T$
- 3580 PRINT UL$;
- 3590 GOSUB 3410 'diagram
- 3600 PRINT UL$;
- 3610 GOSUB 3020 'menu
- 3620 '
- 3630 INPUT " ENTER: Transmatch Input Impedance R1..........(ohms)";R1
- 3640 ZZ=R1:U$=U2$:GOSUB 860:PRINT " -"
- 3650 INPUT " ENTER: Value of inductor L.................... (>H)";L
- 3660 ZZ=L: U$=U2$:GOSUB 860:PRINT " >H"
- 3670 INPUT " ENTER: Value of capacitor C1.................. (pF)";C1
- 3680 ZZ=C1:U$=U2$:GOSUB 860:PRINT " pF"
- 3690 INPUT " ENTER: Value of capacitor C................... (pF)";C
- 3700 ZZ=C: U$=U2$:GOSUB 860:PRINT " pF"
- 3710 INPUT " ENTER: Frequency...............................(MHz)";F
- 3720 ZZ=F :U$=U1$:GOSUB 860:PRINT " MHz"
- 3730 W=2*PI*F*10^6:C=C*10^-12:C1=C1*10^-12:L=L*10^-6
- 3740 IF VER$="1"THEN CN=C:GOTO 3780
- 3750 IF VER$="2"THEN CN=C1:GOTO 3770
- 3760 IF VER$="3"THEN CN=0
- 3770 L=1/(1/L-W^2*(CN-C))
- 3780 R2=R1+1/(W^2*C1^2*R1)
- 3790 CP=C1/(1+W^2*C1^2*R1^2):C2=C+CP
- 3800 B=1-W^2*L*C2:A=B^2+W^2*L^2/R2/R2
- 3810 RL=W^2*L^2/A/R2:XS=1/W/C-W*L*B/A
- 3820 IF XS<0 THEN SUM$="-"ELSE SUM$="+"
- 3830 XS=ABS(XS)
- 3840 PRINT TAB(9);"Load impedance...............................";
- 3850 PRINT USING "#####.#";INT(RL*10)/10;:PRINT " ";SUM$;" j";INT(XS*10)/10;"-"
- 3860 U=RL-R1:V=RL+R1:P=U^2+XS^2:Q=V^2+XS^2
- 3870 GAMMA=SQR(P/Q):SWR=(1+GAMMA)/(1-GAMMA)
- 3880 PRINT TAB(9);"Load SWR.....................................";USING U2$;SWR;
- 3890 PRINT ":1"
- 3900 LOCATE 23,9: PRINT "Do you wish to make another calculation (y/n)"
- 3910 Y$=INKEY$:IF Y$="" THEN 3910
- 3920 IF Y$="Y"OR Y$="y"THEN 3950
- 3930 LOCATE 23:PRINT E$
- 3940 GOTO 9160 'end
- 3950 VIEW PRINT 10 TO 24:CLS:VIEW PRINT:LOCATE 10:GOTO 3530
- 3960 '
- 3970 '.....LOWPASS TEE transmatch design
- 3980 CLS
- 3990 T$="LOWPASS TEE TRANSMATCH DESIGN"
- 4000 T=(80-LEN(T$))/2
- 4010 PRINT TAB(T);T$
- 4020 PRINT UL$;
- 4030 GOSUB 4850 'schematic
- 4040 PRINT UL$;
- 4050 GOSUB 910 'input R1,RL,X,F
- 4060 '
- 4070 '.....compute transmatch components
- 4080 W=2*PI*F*10^6
- 4090 IF RL>R1 THEN GOSUB 4550 ELSE GOSUB 4680
- 4100 INPUT " ENTER: Value of L1 in >H .....";L1
- 4110 IF L1<L1MIN THEN LOCATE CSRLIN-1:PRINT E$:LOCATE CSRLIN-1:GOTO 4100
- 4120 LN=CSRLIN-2:VIEW PRINT LN TO 24:CLS:VIEW PRINT:LOCATE LN
- 4130 ZZ=L1
- 4140 PRINT TAB(9);"Inductor L1..................................";USING U2$;ZZ;
- 4150 PRINT " >H"
- 4160 PRINT TAB(9);"SWR.......................................... 1:1"
- 4170 '
- 4180 '.....Inductor L2 calculation
- 4190 A=RL*(R1-RL)+(W^2*L1^2*10^-12*RL/R1)
- 4200 X=SQR(A):GOSUB 4800
- 4210 '
- 4220 LOCATE 16:PRINT " SOLUTION 1:"
- 4230 ZZ=C*10^12
- 4240 PRINT TAB(9);"Capacitor C..................................";USING U2$;ZZ;
- 4250 PRINT " pF"
- 4260 ZZ=L2*10^6
- 4270 PRINT TAB(9);"Inductor L2..................................";USING U2$;ZZ;
- 4280 PRINT " >H"
- 4290 GOSUB 8840 'calculate *
- 4300 '
- 4310 LOCATE 19:PRINT " SOLUTION 2:"
- 4320 X=-SQR(A):GOSUB 4800 'subroutine L and C continued
- 4330 IF XS>=0 OR V=0 THEN PRINT TAB(9);"No second solution":PRINT:GOTO 4440
- 4340 IF L2<0 THEN LOCATE 20,9:PRINT "No second solution"
- 4350 IF L2<0 THEN LOCATE 21,9:PRINT "for this value of L1":GOTO 4440
- 4360 IF C>1500*10^-12 OR L2<10^-9 OR C<O THEN GOSUB 4510:GOTO 4440
- 4370 GOSUB 8900 'calculate *
- 4380 ZZ=C*10^12
- 4390 PRINT TAB(9);"Capacitor C..................................";USING U2$;ZZ;
- 4400 PRINT " pF"
- 4410 ZZ=L2*10^6
- 4420 PRINT TAB(9);"Inductor L2..................................";USING U2$;ZZ;
- 4430 PRINT " >H"
- 4440 LOCATE 23,9:PRINT "Do you wish to vary L1 (y/n)?:"
- 4450 Y$=INKEY$:IF Y$=""THEN 4450
- 4460 IF Y$="Y"OR Y$="y"THEN 4500
- 4470 GOSUB 8230 'calculate SWR
- 4480 LOCATE CSRLIN-1:PRINT E$
- 4490 GOTO 9160 'end
- 4500 VIEW PRINT 14 TO 24:CLS:VIEW PRINT:LOCATE 14:GOTO 4090
- 4510 PRINT TAB(9);"Impractical values"
- 4520 PRINT TAB(9);"for this value of L1"
- 4530 RETURN
- 4540 '
- 4550 '.....subroutine for RL>R1
- 4560 L1A=1/W*SQR(R1*(RL-R1))*10^6
- 4570 L1B=1/W*SQR(R1/RL)*SQR(XS^2+RL*(RL-R1))*10^6
- 4580 IF XS>=0 THEN PRINT " L1 min.=";:PRINT USING "###.###";L1B;:PRINT " >H"
- 4590 IF XS<=0 THEN PRINT " L1 min.=";:PRINT USING "###.###";L1A;:PRINT " >H"
- 4600 IF XS<0 THEN LOCATE 23 ELSE 4640
- 4610 PRINT " NOTE: There are TWO solutions in the range";
- 4620 PRINT USING "##.###";L1A;:PRINT " < L1 <";:PRINT USING "##.###";L1B;
- 4630 PRINT " >H.":V=1
- 4640 IF XS>0 THEN L1MIN=L1B ELSE L1MIN=L1A
- 4650 LOCATE 15
- 4660 RETURN
- 4670 '
- 4680 '.....subroutine for RL<=R1
- 4690 IF(RL^2+XS^2)<=R1*RL THEN L1MIN=0.02:PRINT " L1 min.= .019 >H. ":RETURN
- 4700 L1B=1/W*SQR(R1/RL)*SQR(XS^2+RL*(RL-R1))*10^6
- 4710 IF XS>0 THEN L1MIN=L1B ELSE L1MIN=0.02
- 4720 IF XS>0 THEN PRINT " L1 min.=";:PRINT USING "###.###";L1B;
- 4730 IF XS>0 THEN PRINT " >H. " ELSE PRINT " L1 min.= .019 >H. "
- 4740 IF XS<=0 THEN LOCATE 23 ELSE RETURN
- 4750 PRINT " NOTE: There are TWO solutions in the range 0.019 < L1 < ";
- 4760 PRINT INT(100*L1B)/100;" >H.":V=1
- 4770 LOCATE 15
- 4780 RETURN
- 4790 '
- 4800 '.....subroutine L and C continued
- 4810 L2=1/W*(X-XS)
- 4820 R2=RL+X*X/RL:C=L1*10^-6/R1/R2+X/W/RL/R2
- 4830 RETURN
- 4840 '
- 4850 '.....schematic view
- 4860 COLOR 0,7
- 4870 T=26
- 4880 LOCATE CSRLIN,T:PRINT " L1 L2 "
- 4890 LOCATE CSRLIN,T:PRINT " R1 DEFDBLSOUNDSOUNDSOUNDORORORORSOUNDSOUNDBSAVESOUNDSOUNDORORORORSOUNDSOUNDSOUNDDEFDBL RL "
- 4900 LOCATE CSRLIN,T:PRINT " input CALL load "
- 4910 LOCATE CSRLIN,T:PRINT " THENINSTRTHEN C "
- 4920 LOCATE CSRLIN,T:PRINT " CALL "
- 4930 LOCATE CSRLIN,T:PRINT " /// grnd "
- 4940 COLOR 7,0
- 4950 RETURN
- 4960 '
- 4970 '.....LOWPASS TEE impedance bridge
- 4980 CLS
- 4990 T$="LOWPASS TEE IMPEDANCE BRIDGE"
- 5000 T=(80-LEN(T$))/2
- 5010 PRINT TAB(T);T$
- 5020 PRINT UL$;
- 5030 GOSUB 4850 'diagram
- 5040 PRINT UL$;
- 5050 INPUT " ENTER: Transmatch Input Impedance R1..........(ohms)";R1
- 5060 ZZ=R1:U$=U2$:GOSUB 860:PRINT " -"
- 5070 INPUT " ENTER: Value of inductor L1...................(ohms)";L1
- 5080 ZZ=L1:U$=U2$:GOSUB 860:PRINT " >H"
- 5090 INPUT " ENTER: Value of inductor L2...................(ohms)";L2
- 5100 ZZ=L2:U$=U2$:GOSUB 860:PRINT " >H"
- 5110 INPUT " ENTER: Value of capacitor C.....................(pF)";C
- 5120 ZZ=C :U$=U2$:GOSUB 860:PRINT " pF"
- 5130 INPUT " ENTER: Frequency...............................(MHz)";F
- 5140 ZZ=F :U$=U1$:GOSUB 860:PRINT " MHz
- 5150 W=2*PI*F*10^6:C=C*10^-12:L1=L1*10^-6:L2=L2*10^-6
- 5160 R2=R1+W^2*L1^2/R1:CP=C-L1/R1/R2:K=1/R2/R2+W^2*CP^2
- 5170 RL=1/R2/K:XL=W*CP/K-W*L2 'conjugate
- 5180 IF XL<0 THEN SUM$="-"ELSE SUM$="+"
- 5190 XL=ABS(XL)
- 5200 PRINT TAB(9);"Load impedance...............................";
- 5210 PRINT USING "#####.#";INT(RL*10)/10;:PRINT " ";SUM$;" j";INT(XL*10)/10;"-"
- 5220 U=RL-R1:V=RL+R1:P=U^2+XL^2:Q=V^2+XL^2
- 5230 GAMMA=SQR(P/Q):SWR=(1+GAMMA)/(1-GAMMA)
- 5240 PRINT TAB(9);"Load SWR.....................................";USING U2$;SWR;
- 5250 PRINT ":1"
- 5260 LOCATE 23,9:PRINT "Do you wish to make another calculation? (y/n)"
- 5270 Y$=INKEY$:IF Y$=""THEN 5270
- 5280 IF Y$="Y"OR Y$="y"THEN 5310
- 5290 LOCATE 23:PRINT E$
- 5300 GOTO 9160
- 5310 VIEW PRINT 10 TO 24:CLS:VIEW PRINT:LOCATE 10:GOTO 5050
- 5320 '
- 5330 '.....ULTIMATE transmatch design
- 5340 CLS:V=0
- 5350 T$="`ULTIMATE' TRANSMATCH DESIGN"
- 5360 T=(80-LEN(T$))/2
- 5370 PRINT TAB(T);T$
- 5380 PRINT UL$;
- 5390 GOSUB 5950 'diagram
- 5400 PRINT UL$;
- 5410 GOSUB 910 'input R1, R, X, F
- 5420 '
- 5430 '.....compute transmatch components
- 5440 W=2*PI*F*10^6
- 5450 IF RL>4*R1 THEN GOSUB 6100 ELSE GOSUB 6250
- 5460 INPUT " ENTER: Value of C1a, C1b (each) in pF .....";C1
- 5470 IF C1>=C1MAX THEN GOTO 6100
- 5480 LN=CSRLIN-2:VIEW PRINT LN TO 24:CLS:VIEW PRINT:LOCATE LN
- 5490 PRINT TAB(9);"C1a, C1b (each)..............................";USING U2$;C1;
- 5500 PRINT " pF"
- 5510 PRINT TAB(9);"SWR.......................................... 1:1"
- 5520 '
- 5530 '.....inductor calculation
- 5540 A=1/(W^2*RL*(4*R1-RL)+RL/(C1^2*10^-24*R1))
- 5550 CL=SQR(A):GOSUB 5880
- 5560 '
- 5570 PRINT " SOLUTION 1:"
- 5580 ZZ=C*10^12
- 5590 PRINT " Capacitor C..................................";USING U2$;ZZ;
- 5600 PRINT " pF"
- 5610 ZZ=L*10^6
- 5620 PRINT " Inductor L...................................";USING U2$;ZZ;
- 5630 PRINT " >H"
- 5640 GOSUB 9060 'calculate *
- 5650 CL=-SQR(A):GOSUB 5880
- 5660 '
- 5670 LOCATE 19:PRINT " SOLUTION 2:"
- 5680 IF XS<=0 OR V=0 THEN PRINT TAB(9);"No second solution":PRINT:GOTO 5800
- 5690 IF C<0 THEN PRINT TAB(9);"No second solution"
- 5700 IF C<0 THEN PRINT TAB(9);"for this value of C1":GOTO 5800
- 5710 IF C>1500*10^-12 OR L<10^-9 THEN LOCATE 20,9:PRINT "Impractical values for"
- 5720 IF C>1500*10^-12 OR L<10^-9 THEN PRINT TAB(9);"this value of C1":GOTO 5800
- 5730 ZZ=C*10^12
- 5740 PRINT TAB(9);"Capacitor C..................................";USING U2$;ZZ;
- 5750 PRINT " pF"
- 5760 ZZ=L*10^6
- 5770 PRINT TAB(9);"Inductor L...................................";USING U2$;ZZ;
- 5780 PRINT " >H"
- 5790 GOSUB 9110 'calculate *
- 5800 LOCATE 23,9:PRINT "Do you wish to vary C1 (y/n)?:"
- 5810 Y$=INKEY$:IF Y$=""THEN 5810
- 5820 IF Y$="Y"OR Y$="y"THEN 5860
- 5830 GOSUB 8490 'calculate SWR
- 5840 LOCATE CSRLIN-1:PRINT E$
- 5850 GOTO 9160 'end
- 5860 VIEW PRINT 14 TO 24:CLS:VIEW PRINT:LOCATE 14:GOTO 5450
- 5870 '
- 5880 '.....calculate L and C values
- 5890 K=W*CL*RL
- 5900 C2=CL/(1+K^2):C=1/(W*XS+1/CL)
- 5910 R2=RL*(1+1/(K^2))
- 5920 L1=R2/(W^2*C1*10^-12*(R2-2*R1)):L=L1/(1+W^2*L1*C2)
- 5930 RETURN
- 5940 '
- 5950 '.....schematic view
- 5960 COLOR 0,7
- 5970 T=26
- 5980 LOCATE CSRLIN,T:PRINT " C1a C "
- 5990 LOCATE CSRLIN,T:PRINT " R1 DEFDBLSOUNDSOUNDSOUNDBSAVESOUNDSOUNDSOUNDUSINGSOUNDSOUNDSOUNDBSAVESOUNDSOUNDSOUNDUSINGSOUNDSOUNDSOUNDDEFDBL RL "
- 6000 LOCATE CSRLIN,T:PRINT " input CALL CALL load "
- 6010 LOCATE CSRLIN,T:PRINT " THENINSTRTHEN C1b CLSORORORORORCOLOR "
- 6020 LOCATE CSRLIN,T:PRINT " CALL L CALL "
- 6030 LOCATE CSRLIN,T:PRINT " /// grnd /// "
- 6040 COLOR 7,0
- 6050 LN=CSRLIN:LOCATE LN-4,56:PRINT "C1a, C1b can be a split-"
- 6060 LOCATE CSRLIN,56:PRINT "stator variable capacitor"
- 6070 LOCATE LN
- 6080 RETURN
- 6090 '
- 6100 '.....subroutine for RL>4*R1
- 6110 C1A=1/W/SQR(R1*(RL-4*R1))*10^12
- 6120 C1B=1/W*SQR(RL/R1)/SQR(XS^2+RL*(RL-4*R1))*10^12
- 6130 IF XS<=0 THEN PRINT " C1a, C1b max.(each)=";:PRINT USING "####.#";C1B;
- 6140 IF XS<=0 THEN PRINT " pF"
- 6150 IF XS> 0 THEN PRINT " C1a, C1b max.(each)=";:PRINT USING "####.#";C1A;
- 6160 IF XS> 0 THEN PRINT " pF"
- 6170 IF XS> 0 THEN LOCATE 23 ELSE 6210
- 6180 PRINT " NOTE: There are TWO solutions in the range";
- 6190 PRINT INT(10*C1B+1)/10;"< C1a/C1b <";:PRINT USING "####.#";C1A;
- 6200 PRINT " pF.":V=1
- 6210 IF XS<=0 THEN C1MAX=C1B ELSE C1MAX=C1A
- 6220 LOCATE 15
- 6230 RETURN
- 6240 '
- 6250 '.....subroutine for RL<4*R1
- 6260 IF (RL^2+XS^2)<=(4*R1*RL)THEN C1MAX=750
- 6270 IF (RL^2+XS^2)<=(4*R1*RL)THEN PRINT" C1a, C1b max.(each)= 749.99 pF":RETURN
- 6280 C1B=1/W*SQR(RL/R1)/SQR(XS^2+RL*(RL-4*R1))*10^12
- 6290 IF XS<=0 THEN C1MAX=C1B ELSE C1MAX=750
- 6300 IF C1MAX>750 THEN C1MAX=750
- 6310 IF XS<=0 THEN PRINT " C1a, C1b max.(each)= ";INT(C1MAX*10)/10;" pF"
- 6320 IF XS>0 THEN PRINT " C1a, C1b max.(each)= 749.9 pF"
- 6330 IF XS>0 THEN LOCATE 23 ELSE RETURN
- 6340 IF C1B>=750 THEN RETURN
- 6350 PRINT " NOTE: There are TWO solutions in the range";
- 6360 PRINT INT(10*C1B+1)/10;"< C1a/C1b < 749.99 pF.":V=1
- 6370 LOCATE 15
- 6380 RETURN
- 6390 '
- 6400 '.....ULTIMATE impedance bridge
- 6410 CLS
- 6420 T$="`ULTIMATE' IMPEDANCE BRIDGE "
- 6430 T=(80-LEN(T$))/2
- 6440 PRINT TAB(T);T$
- 6450 PRINT UL$;
- 6460 GOSUB 5950 'schematic view
- 6470 PRINT UL$;
- 6480 INPUT " ENTER: Transmatch Input Impedance R1..........(ohms)";R1
- 6490 ZZ=R1:U$=U2$:GOSUB 860:PRINT " -"
- 6500 INPUT " ENTER: Value of inductor L....................(ohms)";L
- 6510 ZZ=L:U$=U2$:GOSUB 860:PRINT " -"
- 6520 INPUT " ENTER: Value of capacitor C1....................(pF)";C1
- 6530 ZZ=C1:U$=U2$:GOSUB 860:PRINT " pF"
- 6540 INPUT " ENTER: Value of capacitor C.....................(pF)";C
- 6550 ZZ=C:U$=U2$:GOSUB 860:PRINT " pF"
- 6560 INPUT " ENTER: Frequency...............................(MHz)";F
- 6570 ZZ=F:U$=U1$:GOSUB 860:PRINT " MHz"
- 6580 W=2*PI*F*10^6:C=C*10^-12:C1=C1*10^-12:L=L*10^-6
- 6590 K=2*W*C1*R1:R2=(1+K^2)/(W^2*C1^2*R1)
- 6600 CP=C1*(1+K^2/2)/(1+K^2):T=1-W^2*L*CP:RL=W^2*L^2*R2/(R2^2*T^2+W^2*L^2)
- 6610 XS=1/W/C-W*L*R2^2*T/((R2^2*T^2)+W^2*L^2)
- 6620 IF XS<0 THEN SUM$="-"ELSE SUM$="+"
- 6630 XS=ABS(XS)
- 6640 PRINT TAB(9);"Load impedance...............................";
- 6650 PRINT USING "#####.#";INT(RL*10)/10;:PRINT " ";SUM$;" j";INT(XS*10)/10;"-"
- 6660 U=RL-R1:V=RL+R1:P=U^2+XS^2:Q=V^2+XS^2
- 6670 GAMMA=SQR(P/Q):SWR=(1+GAMMA)/(1-GAMMA)
- 6680 PRINT TAB(9);"Load SWR.....................................";USING U2$;SWR;
- 6690 PRINT ":1"
- 6700 LOCATE 23,9: PRINT "Do you wish to make another calculation (y/n)"
- 6710 Y$=INKEY$:IF Y$=""THEN 6710
- 6720 IF Y$="Y"OR Y$="y"THEN 6750
- 6730 LOCATE 23:PRINT E$
- 6740 GOTO 9160 'end
- 6750 VIEW PRINT 10 TO 24:CLS:VIEW PRINT:LOCATE 10:GOTO 6480
- 6760 '
- 6770 '.....data entry notes
- 6780 VIEW PRINT 4 TO 24:CLS:VIEW PRINT:LOCATE 4
- 6790 NONOTE=1
- 6800 T=7
- 6810 PRINT" 1.";TAB(T);
- 6820 PRINT"Each transmatch design option has a paired impedance bridge option"
- 6830 PRINT TAB(T);
- 6840 PRINT"which may be used either to (a) confirm the accuracy of the design"
- 6850 PRINT TAB(T);
- 6860 PRINT"procedures or (b) determine values (R and X) of an unknown load."
- 6870 PRINT TAB(T);
- 6880 PRINT"Case (b) assumes bridge components have been calibrated since"
- 6890 PRINT TAB(T);
- 6900 PRINT"component values under matched conditions are used as program input."
- 6910 PRINT
- 6920 PRINT" 2.";TAB(T);
- 6930 PRINT"Each design option includes the provision to determine the value of"
- 6940 PRINT TAB(T);
- 6950 PRINT"transmatch input SWR as component values are varied."
- 6960 PRINT
- 6970 PRINT" 3.";TAB(T);
- 6980 PRINT"CAUTION: CARE MUST BE EXERCISED WHEN ENTERING NUMERICAL DATA."
- 6990 PRINT
- 7000 PRINT TAB(T);
- 7010 PRINT"If a non-numerical character is entered where a numerical character"
- 7020 PRINT TAB(T);
- 7030 PRINT"is expected (numbers may contain a decimal point and reactance"
- 7040 PRINT TAB(T);
- 7050 PRINT"values may be negative) a GWBASIC error checking routine halts the"
- 7060 PRINT TAB(T);
- 7070 PRINT"execution of the program. The screen display will be overwritten"
- 7080 PRINT TAB(T);
- 7090 PRINT"with the error message `REDO FROM START' plus a prompt to re-enter"
- 7100 PRINT TAB(T);
- 7110 PRINT"the correct data. The program can be continued by responding to the"
- 7120 PRINT TAB(T);
- 7130 PRINT"prompt but legibility of the display will be impaired. It is"
- 7140 PRINT TAB(T);
- 7150 PRINT"suggested that the program be halted and re-run. To halt the program"
- 7160 PRINT TAB(T);
- 7170 PRINT"hold down the CONTROL key and press the PAUSE key. Then press the F2"
- 7180 PRINT TAB(T);
- 7190 PRINT"key to re-start the program.";
- 7200 '
- 7210 GOSUB 9210
- 7220 LOCATE 25,1:PRINT E$;
- 7230 VIEW PRINT 4 TO 24:CLS:VIEW PRINT:LOCATE 4
- 7240 '
- 7250 PRINT " 4.";TAB(T);
- 7260 PRINT"For SWR calculations the data input format is N1,N2,N3 (i.e. inputs"
- 7270 PRINT TAB(T);
- 7280 PRINT"are separated by commas, e.g. 1.3,50,75 )."
- 7290 PRINT
- 7300 PRINT " 5.";TAB(T);
- 7310 PRINT"Values of the normalized tuner loss factor, (*), are evaluated and"
- 7320 PRINT TAB(T);
- 7330 PRINT"listed for all tuner designs. These values provide a relative"
- 7340 PRINT TAB(T);
- 7350 PRINT"measure of tuner power dissipation (the lower the *, the lower the"
- 7360 PRINT TAB(T);
- 7370 PRINT"loss). In evaluating * it is assumed that losses in tuner capacitors"
- 7380 PRINT TAB(T);
- 7390 PRINT"are negligible. Tuner efficiency is equal to [ 1 - */Q ] where Q is"
- 7400 PRINT TAB(T);
- 7410 PRINT"the quality factor of the inductor(s), i.e. the ratio of inductive"
- 7420 PRINT TAB(T);
- 7430 PRINT"reactance to loss resistance."
- 7440 PRINT
- 7450 PRINT TAB(T);
- 7460 PRINT"For further reading on * refer to the RADIO ENGINEERS HANDBOOK"
- 7470 PRINT TAB(T);
- 7480 PRINT"by F.E.TERMAN, McGraw-Hill, NEW YORK, 1943, pages 210-215."
- 7490 PRINT
- 7500 PRINT " 6.";TAB(T);
- 7510 PRINT"Inductors (either air-core or toroid) of the exact values computed"
- 7520 PRINT TAB(T);
- 7530 PRINT"by this program may be designed using HAMCALC programs COIL DESIGNER"
- 7540 PRINT TAB(T);
- 7550 PRINT"and/or TOROID INDUCTORS."
- 7560 '
- 7570 GOSUB 9210
- 7580 GOTO 610
- 7590 '
- 7600 '.....Pi-Coupler SWR
- 7610 LOCATE 23:PRINT E$
- 7620 LOCATE 23,9
- 7630 PRINT "Do you wish to calculate SWR for variations in tuner values? (y/n)"
- 7640 Y$=INKEY$:IF Y$=""THEN 7640
- 7650 IF Y$="N"OR Y$="n"THEN RETURN
- 7660 LOCATE 23:PRINT E$
- 7670 '
- 7680 LOCATE 23,2
- 7690 INPUT "ENTER: Tuner component values L(uH), C1(pF), C2(pF)";N1,N2,N3
- 7700 GOSUB 7810
- 7710 VIEW PRINT 22 TO 24:CLS:VIEW PRINT
- 7720 LOCATE 22,9
- 7730 PRINT "For L=";N1;"uH, C1=";N2;"pF, C2=";N3;"pF: SWR=";
- 7740 PRINT USING "##.##";SWR;:PRINT ":1"
- 7750 LOCATE 23,9:PRINT "Another SWR calculation? (y/n)"
- 7760 Y$=INKEY$:IF Y$=""THEN 7760
- 7770 IF Y$="N"OR Y$="n"THEN LOCATE 23:PRINT E$:RETURN
- 7780 VIEW PRINT 22 TO 24:CLS:VIEW PRINT
- 7790 GOTO 7680
- 7800 '
- 7810 '.....calculation of SWR
- 7820 N4=N1*10^-6:N5=N2*10^-12:N6=N3*10^-12
- 7830 GL=RL/Z:BL=W*N6-XS/Z:NUM=GL^2+(BL-1/W/N4)^2
- 7840 M=1/(W*N4)^2*GL/NUM:N=W*N5-1/W/N4+1/(W*N4)^2/NUM*(1/W/N4-BL)
- 7850 RI=M/(M^2+N^2):XI=-N/(M^2+N^2)
- 7860 U=RI-R1:V=RI+R1:P=U^2+XI^2:Q=V^2+XI^2
- 7870 GAMMA=SQR(P/Q):SWR=(1+GAMMA)/(1-GAMMA)
- 7880 RETURN
- 7890 '
- 7900 '.....SPC SWR
- 7910 LOCATE 23:PRINT E$
- 7920 LOCATE 23,9
- 7930 PRINT "Do you wish to calculate SWR for variations in tuner values? (y/n)"
- 7940 Y$=INKEY$:IF Y$="" THEN 7940
- 7950 IF Y$="N" OR Y$="n" THEN RETURN
- 7960 LOCATE 23:PRINT E$
- 7970 '
- 7980 LOCATE 23,2
- 7990 INPUT "ENTER: Tuner component values L(uH), C1(pF), C(pF)";N1,N2,N3
- 8000 GOSUB 8110
- 8010 VIEW PRINT 22 TO 24:CLS:VIEW PRINT
- 8020 LOCATE 22,9
- 8030 PRINT "For L=";N1;"uH, C1=";N2;"pF, C=";N3;"pF: SWR=";
- 8040 PRINT USING "##.##";SWR;:PRINT ":1"
- 8050 LOCATE 23,9:PRINT "Another SWR calculation? (y/n)"
- 8060 Y$=INKEY$:IF Y$=""THEN 8060
- 8070 IF Y$="N"OR Y$="n"THEN LOCATE 23:PRINT E$:RETURN
- 8080 VIEW PRINT 22 TO 24:CLS:VIEW PRINT
- 8090 GOTO 7980
- 8100 '
- 8110 '.....calculation of SWR
- 8120 N4=N1*10^-6:N5=N2*10^-12:N6=N3*10^-12
- 8130 IF VER$="1"THEN DELTA=W*N6
- 8140 IF VER$="2"THEN DELTA=W*N5
- 8150 IF VER$="3"THEN DELTA=0
- 8160 XT=XS-1/W/N6:Z=RL^2+XT^2
- 8170 GL=RL/Z:BL=-(1/W/N4+XT/Z)+DELTA
- 8180 NUM=GL^2+BL^2:RI=GL/NUM:XI=-BL/NUM-1/W/N5
- 8190 U=RI-R1:V=RI+R1:P=U^2+XI^2:Q=V^2+XI^2
- 8200 GAMMA=SQR(P/Q):SWR=(1+GAMMA)/(1-GAMMA)
- 8210 RETURN
- 8220 '
- 8230 '.....Lowpass Tee SWR
- 8240 LOCATE 23,9
- 8250 PRINT "Do you wish to calculate SWR for variations in tuner values? (y/n)"
- 8260 Y$=INKEY$:IF Y$=""THEN 8260
- 8270 IF Y$="N"OR Y$="n"THEN RETURN
- 8280 LOCATE 23:PRINT E$:LOCATE 23
- 8290 INPUT " ENTER: Tuner component values L1(>H), L2(>H), C(pF)";N1,N2,N3
- 8300 LOCATE 23:PRINT E$
- 8310 GOSUB 8400
- 8320 LOCATE 22,9:PRINT "For L1=";N1;">H, L2=";N2;">H, C=";N3;"pF: SWR=";
- 8330 PRINT USING "###.##";SWR;:PRINT ":1"
- 8340 LOCATE 23,9:PRINT "Another SWR calculation? (y/n)"
- 8350 Y$=INKEY$:IF Y$=""THEN 8350
- 8360 IF Y$="N"OR Y$="n"THEN RETURN
- 8370 LOCATE 22:PRINT E$
- 8380 GOTO 8280
- 8390 '
- 8400 '.....SWR calculation
- 8410 N4=N1*10^-6:N5=N2*10^-6:N6=N3*10^-12
- 8420 XT=XS+W*N5:Z=RL^2+XT^2
- 8430 GL=RL/Z:BL=W*N6-XT/Z
- 8440 NUM=GL^2+BL^2:RI=GL/NUM:XI=-BL/NUM+W*N4
- 8450 U=RI-R1:V=RI+R1:P=U^2+XI^2:Q=V^2+XI^2
- 8460 GAMMA=SQR(P/Q):SWR=(1+GAMMA)/(1-GAMMA)
- 8470 RETURN
- 8480 '
- 8490 '.....ULTIMATE/SWR
- 8500 LOCATE 23,9
- 8510 PRINT "Do you wish to calculate SWR for variations in tuner values? (y/n)"
- 8520 Y$=INKEY$:IF Y$=""THEN 8520
- 8530 IF Y$="N"OR Y$="n" THEN RETURN
- 8540 LOCATE 22:PRINT E$:PRINT E$:LOCATE 23
- 8550 INPUT " ENTER: Tuner component values L(>H), C1(pF), C(pF)";N1,N2,N3
- 8560 GOSUB 8660
- 8570 LOCATE 22,9
- 8580 PRINT "For L=";N1;">H, C1=";N2;"pF, C=";N3;"pF: SWR=";
- 8590 PRINT USING "#.##";SWR;:PRINT ":1"
- 8600 PRINT E$
- 8610 LOCATE 23,9:PRINT "Another SWR calculation? (y/n)"
- 8620 Y$=INKEY$:IF Y$=""THEN 8620
- 8630 IF Y$="N"OR Y$="n"THEN RETURN
- 8640 GOTO 8540
- 8650 '
- 8660 '.....calculation of SWR
- 8670 N4=N1*10^-6:N5=N2*10^-12:N6=N3*10^-12
- 8680 XT=XS-1/W/N6:Z=RL^2+XT^2
- 8690 GL=RL/Z:BL=-(1/W/N4+XT/Z)
- 8700 NUM1=GL^2+BL^2:RA=GL/NUM1:XA=-BL/NUM1-1/W/N5
- 8710 NUM2=RA^2+XA^2:GI=RA/NUM2:BI=W*N5-XA/NUM2
- 8720 NUM3=GI^2+BI^2:RI=GI/NUM3:XI=-BI/NUM3
- 8730 U=RI-R1:V=RI+R1:P=U^2+XI^2:Q=V^2+XI^2
- 8740 GAMMA=SQR(P/Q):SWR=(1+GAMMA)/(1-GAMMA)
- 8750 RETURN
- 8760 '
- 8770 '.....PI-COUPLER DELTA
- 8780 J=1+W^2*R1^2*C1^2:D1=J*XL/R1:JJ=1+W^2*R1^2*C1A^2:D2=JJ*XL/R1
- 8790 LOCATE 16,15
- 8800 IF C1>=0 AND C2-CP>=0 THEN PRINT "( * =";:PRINT USING "##.#";D1;:PRINT " )"
- 8810 LOCATE 19,15:PRINT "( * =";:PRINT USING "##.#";D2;:PRINT " )"
- 8820 RETURN
- 8830 '
- 8840 '.....LOWPASS TEE DELTA - solution 1
- 8850 L1A=L1*10^-6:J1=1-W^2*L1A*C:J2=W*C*R1
- 8860 D1=W/R1*(L1A+L2*(J1^2+J2^2))
- 8870 LOCATE 16,15:PRINT "*= ";:PRINT USING "##.#";D1
- 8880 RETURN
- 8890 '
- 8900 '.....LOWPASS TEE DELTA - solution 2
- 8910 L1A=L1*10^-6:J1=1-W^2*L1A*C:J2=W*C*R1
- 8920 D2=W/R1*(L1A+L2*(J1^2+J2^2))
- 8930 LOCATE 19,15:PRINT "*= ";:PRINT USING "##.#";D2
- 8940 RETURN
- 8950 '
- 8960 '......SPC Delta - Solution 1
- 8970 C1=C1*10^-12:D1=(1+1/(W^2*C1^2*R1^2))/W/L*R1:C1=C1*10^12
- 8980 LOCATE 16,15:PRINT "*= ";:PRINT USING "##.#";D1
- 8990 RETURN
- 9000 '
- 9010 '......SPC Delta - Solution 2
- 9020 C1=C1*10^-12:D2=(1+1/(W^2*C1^2*R1^2))/W/L*R1:C1=C1*10^12
- 9030 LOCATE 19,15:PRINT "*= ";:PRINT USING "##.#";D2
- 9040 RETURN
- 9050 '
- 9060 '.....ULTIMATE Delta - Solution 1
- 9070 C1=C1*10^-12:T=W*C1*R1:D1=(1+4*T^2)/(W^2*L*C1)/T:C1=C1*10^12
- 9080 LOCATE 16,15:PRINT "*= ";:PRINT USING "##.#";D1
- 9090 RETURN
- 9100 '
- 9110 '.....ULTIMATE Delta - Solution 2
- 9120 C1=C1*10^-12:T=W*C1*R1:D2=(1+4*T^2)/(W^2*L*C1)/T:C1=C1*10^12
- 9130 LOCATE 19,15:PRINT "*= ";:PRINT USING "##.#";D2
- 9140 RETURN
- 9150 '
- 9160 'end
- 9170 GOSUB 9210
- 9180 GOTO 160 'start
- 9190 END
- 9200 '
- 9210 'HARDCOPY
- 9220 GOSUB 9330:LOCATE 25,2:COLOR 14,6
- 9230 PRINT " Press 1 to print screen, 2 to print screen & ";
- 9240 PRINT "advance paper, or 3 to continue.";:COLOR 7,0
- 9250 Z$=INKEY$:IF Z$="3"THEN GOSUB 9330:RETURN
- 9260 IF Z$="1"OR Z$="2"THEN GOSUB 9330:GOTO 9280
- 9270 GOTO 9250
- 9280 FOR QX=1 TO 24:FOR QY=1 TO 80
- 9290 LPRINT CHR$(SCREEN(QX,QY));
- 9300 NEXT QY:NEXT QX
- 9310 IF Z$="2"THEN LPRINT CHR$(12)
- 9320 GOTO 9220
- 9330 LOCATE 25,1:PRINT STRING$(80,32);:RETURN
-